﻿using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Faz.SideWinderSC.Client.ViewModel
{
    /// <summary>
    /// Defines the view-model that manages the execution phase of the application.
    /// </summary>
    public class ExecutionViewModel : AbstractViewModel
    {
        /// <summary>
        /// The associated profiles.
        /// </summary>
        private readonly ICollection<ProfileViewModel> profiles;

        /// <summary>
        /// Initializes a new instance of the <see cref="ExecutionViewModel"/> class.
        /// </summary>
        public ExecutionViewModel()
        {
            this.profiles = new ObservableCollection<ProfileViewModel>();
        }

        /// <summary>
        /// Gets the associated profiles.
        /// </summary>
        public ICollection<ProfileViewModel> Profiles
        {
            get { return this.profiles; }
        }

        /// <summary>
        /// Gets or sets the active profile.
        /// </summary>
        public ProfileViewModel ActiveProfile
        {
            get { return this.GetValue<ProfileViewModel>("ActiveProfile"); }
            set { this.SetValue("ActiveProfile", value); }
        }
    }
}
